import { http } from '@/utils/request'
import type { DBList, GenList, GenQueryParams, IGenBatchGenCode, IGenBatchGenCodeRes, IGetDbList } from './type'

const prefix = import.meta.env.VITE_API_CODE

// 查询表详细信息
export function getGenTable(tableId: string) {
	return http.get<any>(`${prefix}/gen/${tableId}`)
}

// 列表
export function getGenList(params: GenQueryParams & Page) {
	return http.get<ResPage<GenList[]>>(`${prefix}/gen/list`, params)
}

// 生成文件下载
export function genBatchGenCode(params: IGenBatchGenCode) {
	return http.get<IGenBatchGenCodeRes>(`${prefix}/gen/batchGenCode`, params, {
		responseType: 'blob'
	})
}

// 同步数据库
export function synchDb(tableName: string) {
	return http.get(`${prefix}/gen/synchDb/${tableName}`)
}

// 删除表数据
export function delTable(tableId: string) {
	return http.delete(`${prefix}/gen/${tableId}`)
}

// 创建表
export function createTable(data: { sql: string }) {
	return http.post(`${prefix}/gen/createTable`, data)
}

// 查询db数据库列表
export function getDbList(query: IGetDbList & Page) {
	return http.get<ResPage<DBList[]>>(`${prefix}/gen/db/list`, query)
}

// 导入表
export function importTable(data: { tables: string }) {
	return http.post(`${prefix}/gen/importTable`, data)
}

// 预览生成代码
export function previewTable(tableId: string) {
	return http.get(`${prefix}/gen/preview/${tableId}`)
}

export function updateGenTable(data: any) {
	return http.put(`${prefix}/gen`, data)
}
